#ifndef __SYMBOL_TABLE__
#define __SYMBOL_TABLE__
#include <gdsl/gdsl_list.h>


typedef enum symbol_type
{
	SYMBOL_MIN_TYPE,
	SYMBOL_INT,
	SYMBOL_STRING,
	SYMBOL_MAX_TYPE,
} symbol_type;

typedef gdsl_list_t symbol_table;
struct symbol
{
	char * name;
	symbol_type type;
	void * content;
};
typedef struct symbol symbol;

symbol* symbol_table_add(symbol_table t,symbol* s);
symbol* symbol_table_get(symbol_table t,char *name);
symbol_table symbol_table_init(void);
void symbol_table_destroy(symbol_table t);
symbol* symbol_create(char* name,symbol_type type);
symbol_table symbol_table_delete(symbol_table t,char* name);

#endif
